﻿// C. Line Empire.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://codeforces.com/problemset/problem/1659/C

您是一位雄心勃勃的国王，希望成为 “真实 ”的皇帝。但要成为皇帝，你必须先成为整数皇帝。

考虑一个数轴。在 0<x1<x2<...<xn 的位置上有 n 个未被征服的王国。您想征服所有其他王国。

您可以采取两种行动：

您可以将首都的位置（设其当前位置为 c1）改为任何其他被征服的王国（设其位置为 c2），代价为 a⋅|c1-c2|。

从当前首都（假设其当前位置为 c1）出发，您可以征服一个未被征服的王国（假设其位置为 c2），代价为 b⋅|c1-c2|。
如果目标王国和您的首都之间有一个未被征服的王国，您就不能征服该王国。
需要注意的是，你不能将都城放置在没有王国的地点。换句话说，在任何一点，你的都城只能位于 0 或 x1、x2、...、xn 中的一个。
还要注意的是，征服一个王国并不会改变你的首都的位置 。

找出征服所有王国的最小总成本。你的首都可以在终点的任何位置。

输入
第一行包含一个整数 t（1≤t≤1000）--测试用例数。随后是每个测试用例的说明。

每个测试用例的第一行包含 3 个整数 n、a 和 b（1≤n≤2⋅105；1≤a,b≤105）。

每个测试用例的第二行包含 n 个整数 x1,x2,...,xn（1≤x1<x2<...<xn≤108）。

所有测试用例的 n 之和不超过 2⋅105。

输出
对于每个测试用例，输出一个整数 - 征服所有王国的最小成本。

InputCopy
4
5 2 7
3 5 12 13 21
5 6 3
1 5 6 21 30
2 9 3
10 15
11 27182 31415
16 18 33 98 874 989 4848 20458 34365 38117 72030
OutputCopy
173
171
75
3298918744



5
5 6 3
1 5 6 21 30


注释
下面是第二个测试案例的最佳走棋顺序：

以 3⋅(1-0)=3 的代价征服位于位置 1 的王国。
将资本转移到位置 1 的王国，代价为 6⋅(1-0)=6.
征服位于 5 号位置的王国，花费 3⋅(5-1)=12.
迁都到位置 5 的王国，费用为 6⋅(5-1)=24.
征服位于 6 号位置的王国，花费 3⋅(6-5)=3.
征服位于 21 号位置的王国，代价为 3⋅(21-5)=48.
征服位于 30 号位置的王国，费用为 3⋅(30-5)=75.
总成本为 3+6+12+24+3+48+75=171。你不可能得到比这更低的成本。
*/



#include <iostream>
#include <cstring>


using namespace std;

int T;
const int N = 200010;
long long pre[N];
int arr[N];
int n, a, b;


void solve() {
	cin >> n >> a >> b;  
	memset(arr, 0, sizeof arr);
	memset(pre, 0, sizeof pre);
	for (int i = 1; i <= n; i++) cin >> arr[i];

	for (int i = 1; i <= n; i++) pre[i] = pre[i - 1] + arr[i];
	long long ans = 0x3f3f3f3f3f3f3f3f;
	for (int i = 0; i <= n; i++) {
		long long sum = 1ll*a * arr[i] + 1ll*b * arr[i] - 1ll*b * arr[i] * (n - i) + b * (pre[n] - pre[i]);
		ans = min(ans, sum);
	}

	cout << ans << endl;

	return;
}


int main()
{
	cin >> T;
	while(T--) {
		solve();
	}

	return 0;
}
 